﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using STT.Business;
using STT.Entities;

namespace STT.Admin.UserControls
{
    public partial class ucHocVienBangCap : System.Web.UI.UserControl
    {
        public bool chonSuaClick;
        protected void Page_Load(object sender, EventArgs e)
        {
            LoandHocVienBangCap();
            Loanddl();

            txtNgayCap.Text = DateTime.Now.ToString("yyy-MM-dd");
        }
        void Loanddl()
        {
            ddBangCap.DataSource = BTbBangCap.SelectAll();
            ddHocVien.DataSource = BTbHocVien.SelectAll();


            ddHocVien.DataTextField = "TenHV";
            ddBangCap.DataTextField = "TenBangCap";

            ddBangCap.DataValueField = "MaBangCap";
            ddHocVien.DataValueField = "MaHV";

            ddBangCap.DataBind();
            ddHocVien.DataBind();

        }
        void LoandHocVienBangCap()
        {
            gvBangCapHocVien.AutoGenerateColumns = false;
            gvBangCapHocVien.DataSource = BTbHocVien_BangCap.SelectAll();
            gvBangCapHocVien.DataBind();
        }

        void ThongBao(string Loi)
        {
            ScriptManager.RegisterClientScriptBlock(this, GetType(), "Thông báo!", "<script>alert('" + Loi + "')</script>", false);
        }
        protected void gvBangCapHocVien_RowEditing(object sender, GridViewEditEventArgs e)
        {
            gvBangCapHocVien.EditIndex = e.NewEditIndex;
            gvBangCapHocVien.DataBind();
        }
        protected void btImport_Click(object sender, EventArgs e)
        {

        }
        protected void btThemExcel_Click(object sender, EventArgs e)
        {

        }

        protected void gvBangCapHocVien_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            try
            {
                String MaHV = gvBangCapHocVien.DataKeys[e.RowIndex].Values[0].ToString();
                int MaBangCap = int.Parse(gvBangCapHocVien.DataKeys[e.RowIndex].Values[1].ToString());

                BTbHocVien_NgoaiNgu.Delete(MaHV, MaBangCap);
                LoandHocVienBangCap();
                Session["action"] = 3;
            }
            catch
            {
                ThongBao("Dữ liệu liên quan đến bằng cấp của học viên này vẫn tồn tại, vui lòng kiểm tra lại dữ liệu!");
            }
        }

        protected void gvBangCapHocVien_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            gvBangCapHocVien.EditIndex = -1;
            gvBangCapHocVien.DataBind();
        }

        protected void btThemMoi_Click(object sender, EventArgs e)
        {
            if (!KiemTraDuLieu())
            {
                BTbHocVien_BangCap.Insert(new ETbHocVien_BangCap
                {
                    
                    MaHV = ddHocVien.SelectedValue,
                     MaBangCap= int.Parse(ddBangCap.SelectedValue),
                    NgayCap = DateTime.Parse(txtNgayCap.Text),
                    NoiCap = txtNoiCap.Text



                });
                LoandHocVienBangCap();
                Session["action"] = 1;
            }
            else
            {
                ThongBao("Bằng cấp của học viên này đã tồn tại!");

            }


        }
        bool KiemTraDuLieu()
        {
            return BTbHocVien_BangCap.KiemTraDuLieu(new ETbHocVien_BangCap
            {
                MaHV = ddHocVien.SelectedValue,
                MaBangCap = int.Parse(ddBangCap.SelectedValue)


            });
        }

        protected void lbXuatDuLieu_Click(object sender, EventArgs e)
        {

        }

        protected void lbXoaTat_Click(object sender, EventArgs e)
        {
            try
            {
                for (int i = 0; i < gvBangCapHocVien.Rows.Count; i++)
                {
                    CheckBox cbChon = (CheckBox)gvBangCapHocVien.Rows[i].Cells[0].FindControl("cbChon");
                    if (cbChon != null && cbChon.Checked)
                    {
                        BTbHocVien_NgoaiNgu.Delete(gvBangCapHocVien.DataKeys[i].Values[0].ToString(), int.Parse(gvBangCapHocVien.DataKeys[i].Values[1].ToString()));
                    }
                }

                LoandHocVienBangCap();
                Session["action"] = 3;
            }
            catch
            {
                ThongBao("Dữ liệu liên quan đến bằng cấp của học viên này vẫn tồn tại, vui lòng kiểm tra lại dữ liệu!");
            }
        }

        // Phân trang
        protected void gvBangCapHocVien_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            Loanddl();
            gvBangCapHocVien.PageIndex = e.NewPageIndex;
            gvBangCapHocVien.DataBind();
        }



        protected void btSua_Click(object sender, EventArgs e)
        {
            Loanddl();
            if (!KiemTraDuLieu())
            {
                BTbHocVien_BangCap.Update(new ETbHocVien_BangCap
                {
                    MaHV = ddHocVien.SelectedValue,
                    MaBangCap = int.Parse(ddBangCap.SelectedValue),
                    NgayCap = DateTime.Parse(txtNgayCap.Text),
                    NoiCap = txtNoiCap.Text

                });
                LoandHocVienBangCap();
                Session["action"] = 2;
            }
        }

        protected void btSearch_Click(object sender, ImageClickEventArgs e)
        {

            gvBangCapHocVien.DataSource = BTbHocVien_BangCap.SearchHocVienBangCap(

               txtTimKiem.Text
            );
            gvBangCapHocVien.DataBind();

        }
        public static String maGV, maNN;
        protected void gvBangCapHocVien_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "ChonSua")
            {
                ddBangCap.Enabled = false;
                ddHocVien.Enabled = false;
                int index = Convert.ToInt32(e.CommandArgument);
                maGV = gvBangCapHocVien.DataKeys[index].Values[0].ToString();
                maNN = gvBangCapHocVien.DataKeys[index].Values[1].ToString();
                // Thay đổi tiêu đề
            
                ddBangCap.SelectedItem.Text = HttpUtility.HtmlDecode(gvBangCapHocVien.Rows[index].Cells[2].Text);
                ddHocVien.SelectedItem.Text = HttpUtility.HtmlDecode(gvBangCapHocVien.Rows[index].Cells[3].Text);
                txtNgayCap.Text = DateTime.Parse(gvBangCapHocVien.Rows[index].Cells[4].Text).ToString("yyyy-MM-dd");
                txtNoiCap.Text = HttpUtility.HtmlDecode(gvBangCapHocVien.Rows[index].Cells[5].Text);

                chonSuaClick = true;
            }
        }

     
    }
}